<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 函数的三种创建方式
    // debugger;


    // 命名函数
    // function fn(a, b) {
    //     return a + b;
    // }
    // fn(10, 20)

    // console.log(fn);  // 函数在没有调用时 也是存在内存当中的 (函数名 => 变量名)


    // 匿名函数
    // 1. 匿名函数的自执行/自调用
    // var result = (function (a, b) {
    //     return a + b;
    // })(10, 20);
    // console.log(result);

    // 2. 作为其他函数的参数 => 回调函数
    // console.log(function () { });
    // setInterval(function () {

    // },)
    // [1, 2, 3].forEach(function () { });

    // 3. 存放到 变量 数组  对象  事件中
    // var fn = function (a, b) {
    //     return a + b;
    // }
    // fn(10, 20);

    // var list = [1, 2, 3, 4, function (a, b) {
    //     return a + b;
    // }]

    // list[4](10, 20);

    // var obj = {
    //     a: 10,
    //     b: 20,
    //     fn: function (a, b) {
    //         return a + b;
    //     }
    // }

    // obj.fn(100, 200);

    // document.onclick = function(){

    // }


    // 构造函数Function创建    (函数也是一个特殊的对象)
    // var fn = new Function("a", "b", "return a + b");
    // console.log(fn);
    // console.log(typeof fn); // 'function'

    // Array.isArray()
    // Array.from()
    // String.fromCharCode

    // var arr = new Array(1, 2, 3);
    // arr.push()  // 数组的方法




</script>

</html>